iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0
AI Engineering

30 天拆解 Wearable × AI:從穿戴裝置生理訊號到AI健康洞察系列 第 2

Day 02|Wearable 到底在量什麼?量測、指標與推估的差別

  • 分享至 

  • xImage
  •  

今天為什麼研究這個?

穿戴裝置給的生理數據是怎麼來的?為何智慧手錶/手環/戒指用綠光閃爍就能算出心率,換成紅光與紅外光就能推算血氧?加速度計明明只量手腕晃動,怎麼能算出步數甚至睡眠分期?手錶測到的皮膚溫度,又跟我們平常量的核心體溫有何不同?

最重要的是:把這些數值直接交給 LLM 或 AI 系統時,若我們把「推估出來的數字」當成「精確測量到的物理量」,會帶來多大的偏誤與幻覺?

要回答這些問題,必須先把穿戴數據拆解為三個截然不同的層級。

Concept

穿戴裝置儀表板上看似平級的數值——心率、步數、睡眠時間、血氧——其背後的資料生成路徑完全不同。即使是同一種感測器(如 PPG 光學感測器),其原始訊號與最終呈現的數字之間,也隔著多層處理與假設。

為了在工程與資料管線上建立清晰的契約,本系列將穿戴裝置的數據路徑拆解為三個層級:

[層級 1:量測 (Measurement)] ──> 感測器直接感應的物理量(光電訊號、三軸加速度、熱敏電阻)
        │ (固定數學公式、確定性信號處理)
        ▼
[層級 2:計算/指標 (Metric)] ──> 依定義計算,不依賴特定族群參數(脈動週期、RMSSD、加速度峰值)
        │ (族群校正、經驗模型、黑盒/機器學習推論)
        ▼
[層級 3:推估 (Estimation)] ──> 需要外部資料校正或多訊號融合(SpO₂、睡眠狀態、壓力指數)
  • 量測(Measurement):感測器物理直接感應到的量(Sample-level data)。濾波、降採樣不改變此層級。
  • 計算(Metric / Computation):從量測出發,透過明確的數學定義或確定性公式轉換,不依賴特定受試者族群參數。
  • 推估(Estimation / Inference):中間步驟需要透過族群資料進行經驗校正、機器學習模型或多感測器融合,換了情境或族群可能產生偏差。

帶著這三個層級,我們來看穿戴裝置最核心的三大感測器到底感應到什麼:

1. 光學感測器(PPG):從光電變化到心率、血氧與 HRV

智慧手環或手錶底部的 PPG(photoplethysmography,光電容積圖)模組,直接感應的是組織微血管床的血容積變化所造成的光吸收量

  • 心率(綠光 PPG)── 從量測到計算
    平常偵測心率多使用綠光 LED(波長約 520–540 nm)。血液中的血紅素對綠光吸收率高,當心臟搏動時,手腕微血管充血吸收較多綠光;搏動間隙血流量減少。感測器記錄反射綠光的週期性波形(量測),演算法偵測波峰週期並換算為每分鐘心跳數(計算)。綠光穿透深度淺,對日常運動產生的雜訊(Motion Artifacts)抵抗力相對較佳。
  • 血氧飽和度(SpO₂)── 跨入經驗推估
    單用單一波長無法測出血氧。含氧血紅素(HbO₂)吸收較多紅外光(約 940 nm),去氧血紅素(Hb)則吸收較多紅光(約 660 nm)。裝置必須交替發射紅光與紅外光,測量兩者的脈動強度比值(Ratio of Ratios, R)。但比值 R 無法由物理公式直接換算成血氧百分比,每一款感測器都必須透過實驗室採集人體動脈血(SaO₂)進行經驗校正曲線對照(Nitzan 2014)。因此 SpO₂ 本質上是推估
  • HRV 與 PRV ── 指標計算與生理落差
    心率變異性的通用英文是 Heart Rate Variability(HRV)。常見指標如 RMSSD(相鄰心跳間期差值的均方根)或 SDNN(標準差)都是明確的統計指標(計算),而非統計上的「變異數(variance)」。但要注意:PPG 測到的是脈搏週期波峰間隔,學理上稱為 PRV(Pulse Rate Variability)。在安靜狀態下 PRV 與黃金標準(ECG 的 R-R 間期)高度一致;但在運動或交感神經劇烈變化時,血流動力學延遲會使 PRV 與真實 HRV 出現不可忽略的差距(Schäfer & Vagedes 2013)。
  • 衍生推估(如壓力狀態)
    市面上常見的手錶「壓力指數」,是將計算出的 HRV/PRV 輸入專利黑盒模型推估出來的生理壓力分數,屬於典型的推估

2. 加速度計:從慣性受力到步數與睡眠判斷

三軸加速度計直接感應的是裝置本體的加速度與重力分量(量測)。

  • 步數(Steps)
    腕戴裝置計步利用走路時加速度的週期性。由於手腕容易因推車或手勢造成漏計與誤判(Bassett 2017),表現較好的方法採「兩階段處理」:先透過頻率規則(例如主頻率落在人體步行的 0.6–2.0 Hz)或機器學習模型確認使用者「正在走路」(Marcotte 2025;Small 2024),接著才在走路時段內用波峰偵測、門檻穿越或頻率分析計算步數,藉此降低誤判(Marcotte 2025)。前者照判準接近計算,後者屬於推估

  • 睡眠狀態(Sleep / Wake)
    加速度計無法直接測量大腦睡眠。醫學上的黃金標準是多導睡眠圖(Polysomnography, PSG),需同時監測腦電圖(EEG)、眼動圖(EOG)與肌電圖(EMG)。消費型穿戴更進一步結合心率、HRV 與體溫多訊號,透過專利演算法(Proprietary Algorithms)推估用戶睡眠狀態的淺眠、深眠與 REM期(de Zambotti 2019)。這完全屬於推估

3. 溫度計:手腕皮膚溫度 ≠ 核心體溫

穿戴裝置上的溫度感測器,直接量測到的是手腕皮膚表面溫度(量測),而非臨床常用的口溫、耳溫或肛溫(核心體溫)。

  • 睡前散熱與逆向節律
    生理學上,人體在準備入睡時,交感神經活性下降、末梢血管舒張,大量溫熱血液湧向手腳末端散熱,以降低核心體溫。這使得手腕皮膚溫度在入睡前後反而會上升,起床後驟降,與核心體溫呈現反向節律。生理學將其稱為遠端-近端溫差(DPG)。在多感測器融合演算法中,手腕溫度上升常被作為「準備入睡」的佐證訊號(推估)。

Hands-on

Dataset

本篇不執行複雜運算,依據皆來自公開醫學與感測工程文獻。範例欄位取自 Day 1 的合成資料 day01_week_daily.csv

Method

挑選穿戴裝置 6 個常見輸出,往回追溯感測器、直接感應的物理量、中間處理步驟與黃金參考標準,並根據定義給予層級判定:

  1. 輸出是不是感測器直接感應的那個物理量? 是,即為量測
  2. 不是的話,從量測到輸出靠什麼?
    • 靠確定性數學公式、不需人口統計參數調整,為計算
    • 對應關係需要以群體資料校正、統計回歸或機器學習最佳化,為推估。只要處理管線中包含任一步推估,最終輸出即歸類為推估
輸出 感測器 直接感應 中間步驟 參考標準 層級
皮膚溫度 溫度計 腕部皮膚溫度 有線熱電偶,但無公認金標準(Bach 2026;Bandiera 2026) 量測
心率 PPG 微血管床血容積變化 脈動波形提取週期(Allen 2007) ECG 計算
HRV PPG 同上 脈搏間隔(PRV)→ RMSSD / SDNN(Schäfer & Vagedes 2013) ECG R-R 計算
步數 加速度計 身體/手腕加速度 先辨識走路,再數波峰/門檻/頻率(Marcotte 2025;Small 2024) 研究者目視並手動計數(Bassett 2017)或影像標註(Small 2024) 計算或推估,依演算法而定
SpO₂ PPG(雙波長) 紅光與紅外光脈搏 比值 R → 動脈血經驗校正曲線(Nitzan 2014) 動脈血 SaO₂ 推估
睡/醒 加速度計+多感測器 手腕活動與生理訊號 專利特徵分類演算法(Cole 1992;de Zambotti 2019) PSG(腦電等多導) 推估

Code

依上述判準,把 Day 1 CSV 的欄位寫成帶來源與層級的 metadata schema,以 hrv_ms 為例:

# day01_week_daily.csv 欄位語意與層級定義
hrv_ms:
  sensor: PPG
  physical_measurement: 微血管床血容積變化
  derived_via: 脈搏間隔(PRV)→ RMSSD 公式 → 夜間睡眠期間平均
  reference: ECG R-R
  level: 推估 (Estimation)   # 睡眠期間來自睡/醒判斷

上表的 HRV 是單一時間窗算出的 RMSSD,屬於計算;hrv_ms 多了「夜間睡眠期間」這一步,依「任一步推估即推估」變成推估。

其餘三欄格式相同,差別在 derived_vialevel

  • resting_hr_bpm:脈搏波形 → 心率 → 夜間睡眠期間最低穩定心率 → 推估(同樣卡在睡眠期間這一步)
  • sleep_duration_h:手腕活動 → 睡/醒判斷 → 主睡眠時段總時長 → 推估
  • steps:手腕加速度 → 走路辨識 → 數步 → 計算或推估,依演算法而定

結果與意外

在查核文獻與重新檢視感測原理時,梳理出的認知落差:

原本以為 實際發現
手錶測血氧只要發射紅外光看吸收度 單波長無法計算,必須交替使用紅光與紅外光取比值 R,再比對動脈血 SaO₂ 做經驗校正
手錶量到的溫度等於身體核心溫度 腕上量的是末梢(手腕, 手指)周邊皮膚溫度,與核心溫度相反
睡著時體溫應該會跟著下降 睡前末梢血管擴張散熱,手腕皮膚溫度在入睡前後反而顯著上升,起床後驟降
手錶能精確辨識睡眠腦波分期 加速度計只能感應活動量;近期消費型裝置對照 PSG,判斷睡著的敏感度 ≥0.93,判斷清醒的特異度只有 0.18–0.54,睡眠分期結果不一致
PPG 算出的 HRV 與心電圖完全相同 拿到的是脈搏間隔(PRV),靜止時高度吻合,但在活動或心理壓力下與心電圖一致性大幅下降
心率變異數是指統計學上的 Variance 通用中文名是「心率變異性」;常用的 SDNN 是標準差,RMSSD 是差值均方根,皆非變異數

Limitations

  1. 文獻範疇的代表性而非窮盡性:本文引用的文獻多為感測器原理與生理學代表性綜述(Reviews),穿戴裝置各主流廠商內部實際運行之數位濾波與專利模型細節並未公開,實際商用表現可能與文獻基線有所差異。
  2. 手腕計步的方法差異:公開的腕戴計步方法就有波峰偵測、門檻穿越、頻率分析等做法,參數設定與是否先辨識走路都會改變結果,而且在規律步行和日常活動下的表現互有取捨(Marcotte 2025)。多數商用裝置的計步方法未公開(Small 2024),本文無法判定它們屬於哪一層。
  3. 層級劃分的工程主觀性:本系列將輸出劃分為「量測/計算/推估」三層,旨在為軟體與 AI 資料管線建立契約邊界。醫學上另有 V3 驗證框架(Verification, Analytical Validation, Clinical Validation;Goldsack 2020)針對數位生物標記進行評估,視角略有不同。

這對 AI Engineering 的意義

回到 Day 1:v0 讀完一週的 CSV,第一句就是「你的身體目前處於疲勞累積與自律神經偏緊繃的狀態」。

這是一個健康狀態,上表沒有任何感測器量得到它。CSV 裡沒有這個欄位,從數字到這句話沒有公式,也沒有對照任何參考標準,是模型自己補上的一層推估。它的起點也不是量測:hrv_msresting_hr_bpm 只取夜間睡眠期間,sleep_duration_h 是主睡眠時段的長度,而睡眠時段來自睡/醒判斷,依判準三個欄位都是推估。CSV 沒有標層級,從輸入看不出這是推估疊在推估上。

Hands-on 那份 schema 的 physical_measurementreferencelevel三個欄位,各自擋下一種誤讀:

  1. physical_measurement:量測層也會讀錯
    hrv_ms 這欄寫的是「微血管床血容積變化」而不是「心跳」——欄位名沒講的事,這一欄要講。層級是量測,不代表不會被誤讀。腕上量的是末梢皮膚溫度,不是核心體溫;手腳等末梢部位的皮膚溫度,日夜節律和核心體溫正好相反(Kräuchi & Wirz-Justice 1994)。欄位若只寫 temperature,夜裡的上升就可能被當成體溫升高來讀。Day 1 的 CSV 沒有溫度,之後接上有溫度的資料時,這個欄位要寫明量的是哪裡的溫度。
  2. reference:能不能驗證,要看有沒有對照標準
    hrv_ms 的參考標準是 ECG R-R,可以驗證;但 PPG 拿到的是 PRV,靜止時夠準,活動和部分心理壓力下與 ECG 的一致性變差(Schäfer & Vagedes 2013),差多少留到 Day 9 用 PPG-DaLiA 的 ECG 比對。
  3. level:把推估讀成事實
    v0 寫「9/12 睡眠僅 5.3 小時,緊接著 9/13 暴增至 21,480 步,形成典型的『睡眠債 + 高身體負荷』」。CSV 沒說 5.3 小時是推估,模型照單全收,再往上疊出「睡眠債」。消費型裝置對照 PSG,逐段判定睡著的敏感度都在 0.93 以上,判定清醒的特異度卻只有 0.18–0.54,也就是清醒時段常被判成睡著(Chinoy 2021)。有了 level,下游才知道這個數字要當「裝置估計」來用。

Day 19 定 feature contract 時,這三個欄位是候選。


上一篇
Day 01|從一個數值到一句健康建議,中間少了什麼?
下一篇
Day 03|PPG 如何從皮膚上的光,看見心跳?
系列文
30 天拆解 Wearable × AI:從穿戴裝置生理訊號到AI健康洞察10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言